from django.contrib import messages
from django.shortcuts import render, redirect
from django.contrib.auth import authenticate, login, logout
from django.urls import reverse  # 添加这行
from django.http import JsonResponse

def user_login(request):
    if request.method == 'POST':
        username = request.POST.get('username')
        password = request.POST.get('password')
        user = authenticate(request, username=username, password=password)
        if user is not None:
            login(request, user)
            # 确保使用正确的URL名称
            return redirect('admin_home')  # 这里应该使用视图函数对应的URL名称
        else:
            return render(request, 'login.html', {'error': '用户名或密码错误'})
    return render(request, 'login.html')



def register(request):
    if request.method == 'POST':
        from django.contrib.auth.models import User
        username = request.POST.get('username')
        password = request.POST.get('password')
        try:
            User.objects.create_user(username=username, password=password)
            # 注册成功后重定向到登录页
            return redirect(reverse('user_login'))  # 使用视图函数的名称
        except:
            return render(request, 'register.html', {'error': '用户创建失败'})
    return render(request, 'register.html')

def admin_home(request):
    return render(request, 'admin_home.html')


# 退出登录按钮
def logout_view(request):
    logout(request)
    return redirect(reverse('user_login'))
# 仪表盘
def dashboard(request):
    return render(request,'dashboard.html')

# 用户管理
def user_manage(request):
    return render(request, 'user_manage.html')

##添加用户
def add_user(request):
    return render(request,'add_user.html')


##添加内容
def add_content(request):
    if request.method == 'POST':
        title = request.POST['title'].strip()
        content = request.POST['content'].strip()
        tags = [tag.strip() for tag in request.POST.get('tags', '').split(',') if tag.strip()]

        # 基本验证
        if not title:
            messages.error(request, '标题不能为空！')
            return render(request, 'add_content.html')
        if len(content) < 10:
            messages.error(request, '正文长度不足 10 字！')
            return render(request, 'add_content.html')



    return render(request, 'add_content.html')

# 内容管理
def content_manage(request):
    return render(request, 'content_manage.html')

##内容列表
def content_list(request):
    return render(request,'content_list.html')

##显示获取数据（dashboard）
def dashboard_data(request):
    # 这里需替换为真实数据查询逻辑（如从数据库获取）
    data = {
        "month_sales": "15000",         # 月销售量
        "user_views": "20000",          # 用户访问量
        "profit_growth": "8.5",         # 利润增长（百分比）
        "customer_satisfaction": "95",  # 客户满意度（百分比）
        "product_names": ["笔记本", "手机", "平板"],  # 产品名称
        "product_sales": [1200, 1800, 900]         # 产品销量
    }
    return JsonResponse(data)



# 系统配置
def system_config(request):
    return render(request, 'system_config.html')

# 数据统计
def data_statistics(request):
    return render(request, 'data_statistics.html')

# 日志管理
def log_manage(request):
    return render(request, 'log_manage.html')

# 消息中心
def message_center(request):
    return render(request, 'message_center.html')

# 帮助文档
def help_document(request):
    return render(request, 'help_document.html')